package com.nzd.slsharing.util;
import javax.servlet.http.HttpServletRequest;

public class AuthContextHolder {

    /**
     * 从请求头中获取 JWT Token。
     *
     * @param request HttpServletRequest 对象
     * @return 从请求头中提取的 token，如果没有 token 则返回 null
     */
    public static String getTokenFromRequest(HttpServletRequest request) {
        String token = request.getHeader("Authorization");
        return token;  // 不做格式检查，直接返回请求头中的 token
    }

    /**
     * 从请求头中获取 studentId。
     *
     * @param request HttpServletRequest 对象
     * @return studentId，如果 token 不合法或不存在，返回 null
     */
    public static String getStudentIdFromToken(HttpServletRequest request) {
        String token = getTokenFromRequest(request);
        if (token == null) {
            return null;  // 如果 token 不存在，返回 null
        }

        if (JwtHelper.validateToken(token)) {
            return JwtHelper.getStudentIdFromToken(token);
        }
        return null;  // 如果 token 无效，返回 null
    }

    /**
     * 从请求头中获取 username。
     *
     * @param request HttpServletRequest 对象
     * @return username，如果 token 不合法或不存在，返回 null
     */
    public static String getUsernameFromToken(HttpServletRequest request) {
        String token = getTokenFromRequest(request);
        if (token == null) {
            return null;  // 如果 token 不存在，返回 null
        }

        if (JwtHelper.validateToken(token)) {
            return JwtHelper.getUsernameFromToken(token);
        }
        return null;  // 如果 token 无效，返回 null
    }
}